﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Storage;

namespace tricogol.metro
{
    public class Configuracion
    {
        private static volatile Configuracion instancia;
        private static object syncRoot = new Object();
        
        private Configuracion() { }

        public static Configuracion Instancia
        {
            get
            {
                if (instancia == null)
                {
                    lock (syncRoot)
                    {
                        if(instancia==null)
                            instancia = new Configuracion();
                    }
                }
                return instancia;
            }
        }


        public const string archivoRuta = @"tricogol.txt";
        public StorageFolder carpeta = Windows.Storage.ApplicationData.Current.LocalFolder;
        public StorageFile archivo = null;
        public string contenido = "";

        public void BorrarInfo()
        {
           
            contenido = "";
        }

        public async Task EscribirArchivo(string Texto)
        {
            await Windows.Storage.FileIO.WriteTextAsync(this.archivo, Texto);
        }

        public async Task BorrarArchivo() 
        {
           this.archivo =await this.carpeta.GetFileAsync(@"tricogol.txt");
           if (this.archivo != null)
           {
               await this.archivo.DeleteAsync(StorageDeleteOption.PermanentDelete);
           }
            
        }

        //Revisar si el archivo existe , de ser asi lo asigna a a archivo
        public async Task Inicializar()
        {
            try
            {
               await LeerContenido();                
            }
            catch (FileNotFoundException)
            {
                
            }
        }

        public async Task CrearArchivo()
        {
            StorageFolder storageFolder = KnownFolders.DocumentsLibrary;
            this.archivo = await storageFolder.CreateFileAsync(archivoRuta, CreationCollisionOption.ReplaceExisting);
        }

        public bool ValidarExistenciaArchivo()
        {
            

            if (archivo!=null)            
                return true;

            return false;            
        }

        public async Task LeerContenido()
        {
            this.archivo = await this.carpeta.CreateFileAsync(archivoRuta, CreationCollisionOption.OpenIfExists);
            this.contenido = await Windows.Storage.FileIO.ReadTextAsync(this.archivo);
        }

    }
}
